// #include <iostream>
// #include <ostream>
// #include<string>
// #include <vector>
// using namespace  std;
//
// /**
//  * vector 动态数组 没长度限制
//  *
//  *
//  */
//
// void test_vector()
// {
//     //创建方式 默认初始化为0
//     vector<int> num;
//     //num[0]=1; 这个会报错  超出范围
//
//     vector<int>value = {1,2,3,4,5}; //构造函数得到 长度
//     cout << value.size() << endl;
//
//     //4 代表长度为4 在长度范围内可以直接使用
//     vector<int> data(4);
//     data[0] = 1;
//     data[1]  =2;
//
//     //data[4]=100; //超出范围不能用下标法操作
//
//     vector<int> data2(3);
//
//     for (auto & v:data2)
//     {
//         cout << v << endl;
//     }
//     data2.push_back(8); //函数里面实现了内存的自动增长
//
//
//     //vector 一般应用方式： 无参构造结合成员函数插入数据
//
//     vector<int> data3;
//     data3.push_back(4);
//     data3.push_back(4);
//     data3.push_back(5);
//     data3.push_back(6);
//
//     for (int i=0;i<data3.size();i++)
//     {
//         cout << data3[i] << " ";
//     }
//     cout << endl;
//
//     data3.pop_back();
//     data3.erase(find_if(data3.begin(),data3.end(),[](int& value){return value==5;}));
//
//
//     for (int i=0;i<data3.size();i++)
//     {
//         cout << data3[i] << " ";
//     }
//     cout << endl;
//
//     //删除容器中所有一样的元素
//
//     vector<int> test_data;
//     test_data.push_back(4);
//     test_data.push_back(4);
//     test_data.push_back(5);
//     test_data.push_back(5);
//     test_data.push_back(6);
//     test_data.push_back(6);
// #if 0
//     auto result = find_if(test_data.begin(),test_data.end(),[](int& value){return value==5;});
//     while (result!=test_data.end())
//     {
//         test_data.erase(result);
//         result = find_if(test_data.begin(),test_data.end(),[](int& value){return value==5;});
//     }
// # endif
//
//     // 下面这种会报错  test_data.erase(iter);这样有问题 iter = test_data.erase(iter); 不会有问题
//     for (auto iter=test_data.begin();iter!=test_data.end();)
//     {
//         if (*iter==5)
//         {
//             iter = test_data.erase(iter);
//         }else
//         {
//             iter++;
//         }
//     }
//
//
// }
//
// class MM
// {
// public:
//     MM(string name,int age):name(name),age(age)
//     {
//
//     }
//     string get_name()
//     {
//         return this->name;
//     }
//
//     int get_age()
//     {
//         return age;
//     }
// protected:
//     string name;
//     int age;
// };
//
// class MMSystem
// {
// public:
//     void insert_data(string name,int age)
//     {
//         mm.push_back(MM(name,age));
//     }
//     void print()
//     {
//         for (auto v:mm)
//         {
//             cout << v.get_name() << v.get_age() << endl;
//         }
//     }
//
//     friend std::ostream& operator<<(std::ostream& os, const MMSystem& obj)
//     {
//         for (auto v:obj.mm)
//         {
//             os << v.get_name() << v.get_age() << endl;
//         }
//         return os ;
//     }
//
//     void search_data_name(const string& name)
//     {
//         auto result = find_if(mm.begin(),mm.end(),[=](MM& obj){return obj.get_name()==name;});
//         if (result==mm.end())
//         {
//             cout << "未找打" << endl;
//         }
//
//         cout << result->get_name()<< endl;
//
//     }
//
// protected:
//     vector<MM> mm;
// };
// void test_user_data()
// {
//     MMSystem mm;
//     mm.insert_data("one",2);
//     mm.insert_data("two",3);
//     mm.print();
//     cout << mm;
// }
//
//
// int main()
// {
//     // test_vector();
//
//     test_user_data();
//     return 0;
// }